package com.rdc.qingkou.retrofitService;

import com.rdc.qingkou.entity.ModifyUserInfoResult;
import com.rdc.qingkou.entity.Result;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

/**
 * Created by WaxBerry on 2017/11/12.
 */

public interface IPersonalSettingsService {

    /**
     * 修改用户个人信息
     *
     * @param image
     * @param sex
     * @param nickName
     * @param signature
     * @param userId
     * @return
     */
    @POST("user/modifyUserInfo")
    @Multipart
    Observable<ModifyUserInfoResult> modifyUserInfo(@Part MultipartBody.Part image,       //file
                                                    @Part("sex") int sex,
                                                    @Part("nickName") String nickName,
                                                    @Part("signature") String signature,
                                                    @Part("userId") Integer userId);

    /**
     * 获取用户个人信息
     *
     * @param userId
     * @return
     */
    @GET("user/getUserInfo")
    Observable<ModifyUserInfoResult> getUserInfo(@Query("userId") Integer userId);

    /**
     * 修改密码的接口
     * @param userId
     * @param oldPassword
     * @param newPassword
     * @param confirmPassword
     * @return
     */
    @POST("user/modifyPassword")
    @FormUrlEncoded
    Observable<Result> modifyPassword(@Field("userId") String userId ,
                                      @Field("oldPassword") String oldPassword ,
                                      @Field("newPassword") String newPassword ,
                                      @Field("confirmPassword") String confirmPassword);

    /**
     * 发送短信验证码
     *
     * @param telNumber
     * @return
     */
    @POST("user/sendCode")
    @FormUrlEncoded
    Observable<Result> sendCode(@Field("telNumber") String telNumber);

    /**
     * 登出
     * @return
     */
    @POST("user/logout")
    Observable<Result> logout();

}
